{
    /*简介表示*/
    let o = 'o';
    let k = 'k';
    let es5 = {
        o: o,
        k: k
    };
    let es6 = {
        o,
        k
    };
    console.log(es5, es6);//一样结果，换了种写法
    let es5_f = {
        test: function () {
            console.log('es5');
        }
    };
    let es6_f = {
        test() {
            console.log('es6');
        }
    };
    es5_f.test();
    es6_f.test();
}
{
    /*属性表达式*/
    let a = 'b', b = 'es6';
    let es5 = {
        b: '1' //es5中属性名只能是固定字符串
    };
    let es6 = {
        [a]: '1'//es6新增表达式，[]内容就是表达式
    };
    let es61 = {
        [a + b]: '1'//es6新增表达式，[]内容就是表达式
    };
    console.log(es5, es6);//{b: "1"}{b: "1"}
    console.log(es5, es61);//{b: "1"} {bes6: "1"}
}
{
    /*常用新增api*/
    console.log(Object.is('abc', 'abc'));//相当于===
    let target = {
        a: 'a'
    };
    let source = {
        a: '我覆盖了a',
        b: '我是 source',
        c(){
            console.log('我来自于Source')
        }
    };
    Object.assign(target,source);//向目标对象添加源对象的属性和方法，target的同名属性和方法将会被source的覆盖
    console.log(target);

    /*遍历对象中的key，和value*/
    let o={
        name: 'hhj',
        age: '22',
        sex: 'man'
    };
    //es6
    for (let [key,value] of Object.entries(o)){
        console.log(key,value);
    }
    //es5
    for (let key in o){
        console.log(key,o[key]);
    }
}
